package com.model.dto.sys.userController;

import com.common.anntation.SetNotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.util.Set;

@Data
public class CreateUserDTO {
    /** 登录名 */
    @ApiModelProperty(value = "用户名不能为空，用户名长度限制为50，用户名只允许26个英文字母或英文+数字",required = true)
    @NotNull(message = "用户名不能为空")
    @Size(min = 1, max = 50, message = "用户名长度限制为50")
    @Pattern(regexp = "^[A-Za-z][A-Za-z0-9]+$", message = "用户名只允许26个英文字母或英文+数字")
    String name;

    @NotNull(message = "sysDeptId不能为空")
    @ApiModelProperty(value = "部门id")
    Long sysDeptId;

    @ApiModelProperty(value = "密码不能为空，密码长度限制为6~16，至少1个字母，1个数字和1个特殊字符",required = true)
    @NotNull(message = "密码不能为空")
    @Size(min = 6, max = 16, message = "密码长度限制为16")
    String password;

    /** 手机号 */
    @ApiModelProperty(value = "手机号长度为11位，手机号只能是数字",required = true)
    @Size( max = 11, message = "手机号长度为11位")
    @Pattern(regexp = "^[0-9]*$", message = "手机号只能是数字")
    String mobile;

    /** 邮箱 */
    @ApiModelProperty(value = "邮箱长度限制为50")
    @Size( max = 50, message = "邮箱长度限制为50")
    @Pattern(regexp = "\\b[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}\\b", message = "邮箱格式不合法")
    String email;

    /** 显示名称 */
    @ApiModelProperty(value = "显示名称长度限制为128")
    @Size( max = 128, message = "显示名称长度限制为128")
    String fullName;

    @ApiModelProperty(value = "绑定的角色id列表")
    @SetNotNull()
    Set<Long> sysRoleIds;
}
